package com.zero.clinic.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class PatientDiagnoseExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PatientDiagnoseExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andDiagnoseIdIsNull() {
            addCriterion("diagnose_id is null");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdIsNotNull() {
            addCriterion("diagnose_id is not null");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdEqualTo(Long value) {
            addCriterion("diagnose_id =", value, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdNotEqualTo(Long value) {
            addCriterion("diagnose_id <>", value, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdGreaterThan(Long value) {
            addCriterion("diagnose_id >", value, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdGreaterThanOrEqualTo(Long value) {
            addCriterion("diagnose_id >=", value, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdLessThan(Long value) {
            addCriterion("diagnose_id <", value, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdLessThanOrEqualTo(Long value) {
            addCriterion("diagnose_id <=", value, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdIn(List<Long> values) {
            addCriterion("diagnose_id in", values, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdNotIn(List<Long> values) {
            addCriterion("diagnose_id not in", values, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdBetween(Long value1, Long value2) {
            addCriterion("diagnose_id between", value1, value2, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andDiagnoseIdNotBetween(Long value1, Long value2) {
            addCriterion("diagnose_id not between", value1, value2, "diagnoseId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdIsNull() {
            addCriterion("patient_register_id is null");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdIsNotNull() {
            addCriterion("patient_register_id is not null");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdEqualTo(Long value) {
            addCriterion("patient_register_id =", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdNotEqualTo(Long value) {
            addCriterion("patient_register_id <>", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdGreaterThan(Long value) {
            addCriterion("patient_register_id >", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdGreaterThanOrEqualTo(Long value) {
            addCriterion("patient_register_id >=", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdLessThan(Long value) {
            addCriterion("patient_register_id <", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdLessThanOrEqualTo(Long value) {
            addCriterion("patient_register_id <=", value, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdIn(List<Long> values) {
            addCriterion("patient_register_id in", values, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdNotIn(List<Long> values) {
            addCriterion("patient_register_id not in", values, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdBetween(Long value1, Long value2) {
            addCriterion("patient_register_id between", value1, value2, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientRegisterIdNotBetween(Long value1, Long value2) {
            addCriterion("patient_register_id not between", value1, value2, "patientRegisterId");
            return (Criteria) this;
        }

        public Criteria andPatientMobileIsNull() {
            addCriterion("patient_mobile is null");
            return (Criteria) this;
        }

        public Criteria andPatientMobileIsNotNull() {
            addCriterion("patient_mobile is not null");
            return (Criteria) this;
        }

        public Criteria andPatientMobileEqualTo(String value) {
            addCriterion("patient_mobile =", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileNotEqualTo(String value) {
            addCriterion("patient_mobile <>", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileGreaterThan(String value) {
            addCriterion("patient_mobile >", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileGreaterThanOrEqualTo(String value) {
            addCriterion("patient_mobile >=", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileLessThan(String value) {
            addCriterion("patient_mobile <", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileLessThanOrEqualTo(String value) {
            addCriterion("patient_mobile <=", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileLike(String value) {
            addCriterion("patient_mobile like", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileNotLike(String value) {
            addCriterion("patient_mobile not like", value, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileIn(List<String> values) {
            addCriterion("patient_mobile in", values, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileNotIn(List<String> values) {
            addCriterion("patient_mobile not in", values, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileBetween(String value1, String value2) {
            addCriterion("patient_mobile between", value1, value2, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andPatientMobileNotBetween(String value1, String value2) {
            addCriterion("patient_mobile not between", value1, value2, "patientMobile");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryIsNull() {
            addCriterion("allergic_history is null");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryIsNotNull() {
            addCriterion("allergic_history is not null");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryEqualTo(String value) {
            addCriterion("allergic_history =", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryNotEqualTo(String value) {
            addCriterion("allergic_history <>", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryGreaterThan(String value) {
            addCriterion("allergic_history >", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryGreaterThanOrEqualTo(String value) {
            addCriterion("allergic_history >=", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryLessThan(String value) {
            addCriterion("allergic_history <", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryLessThanOrEqualTo(String value) {
            addCriterion("allergic_history <=", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryLike(String value) {
            addCriterion("allergic_history like", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryNotLike(String value) {
            addCriterion("allergic_history not like", value, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryIn(List<String> values) {
            addCriterion("allergic_history in", values, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryNotIn(List<String> values) {
            addCriterion("allergic_history not in", values, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryBetween(String value1, String value2) {
            addCriterion("allergic_history between", value1, value2, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andAllergicHistoryNotBetween(String value1, String value2) {
            addCriterion("allergic_history not between", value1, value2, "allergicHistory");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeIsNull() {
            addCriterion("symptom_emerge_time is null");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeIsNotNull() {
            addCriterion("symptom_emerge_time is not null");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeEqualTo(Date value) {
            addCriterionForJDBCDate("symptom_emerge_time =", value, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("symptom_emerge_time <>", value, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeGreaterThan(Date value) {
            addCriterionForJDBCDate("symptom_emerge_time >", value, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("symptom_emerge_time >=", value, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeLessThan(Date value) {
            addCriterionForJDBCDate("symptom_emerge_time <", value, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("symptom_emerge_time <=", value, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeIn(List<Date> values) {
            addCriterionForJDBCDate("symptom_emerge_time in", values, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("symptom_emerge_time not in", values, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("symptom_emerge_time between", value1, value2, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andSymptomEmergeTimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("symptom_emerge_time not between", value1, value2, "symptomEmergeTime");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeIsNull() {
            addCriterion("diagnose_type is null");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeIsNotNull() {
            addCriterion("diagnose_type is not null");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeEqualTo(Long value) {
            addCriterion("diagnose_type =", value, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeNotEqualTo(Long value) {
            addCriterion("diagnose_type <>", value, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeGreaterThan(Long value) {
            addCriterion("diagnose_type >", value, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeGreaterThanOrEqualTo(Long value) {
            addCriterion("diagnose_type >=", value, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeLessThan(Long value) {
            addCriterion("diagnose_type <", value, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeLessThanOrEqualTo(Long value) {
            addCriterion("diagnose_type <=", value, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeIn(List<Long> values) {
            addCriterion("diagnose_type in", values, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeNotIn(List<Long> values) {
            addCriterion("diagnose_type not in", values, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeBetween(Long value1, Long value2) {
            addCriterion("diagnose_type between", value1, value2, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andDiagnoseTypeNotBetween(Long value1, Long value2) {
            addCriterion("diagnose_type not between", value1, value2, "diagnoseType");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicIsNull() {
            addCriterion("is_epidemic is null");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicIsNotNull() {
            addCriterion("is_epidemic is not null");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicEqualTo(Long value) {
            addCriterion("is_epidemic =", value, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicNotEqualTo(Long value) {
            addCriterion("is_epidemic <>", value, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicGreaterThan(Long value) {
            addCriterion("is_epidemic >", value, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicGreaterThanOrEqualTo(Long value) {
            addCriterion("is_epidemic >=", value, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicLessThan(Long value) {
            addCriterion("is_epidemic <", value, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicLessThanOrEqualTo(Long value) {
            addCriterion("is_epidemic <=", value, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicIn(List<Long> values) {
            addCriterion("is_epidemic in", values, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicNotIn(List<Long> values) {
            addCriterion("is_epidemic not in", values, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicBetween(Long value1, Long value2) {
            addCriterion("is_epidemic between", value1, value2, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andIsEpidemicNotBetween(Long value1, Long value2) {
            addCriterion("is_epidemic not between", value1, value2, "isEpidemic");
            return (Criteria) this;
        }

        public Criteria andSymptomsIsNull() {
            addCriterion("symptoms is null");
            return (Criteria) this;
        }

        public Criteria andSymptomsIsNotNull() {
            addCriterion("symptoms is not null");
            return (Criteria) this;
        }

        public Criteria andSymptomsEqualTo(String value) {
            addCriterion("symptoms =", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsNotEqualTo(String value) {
            addCriterion("symptoms <>", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsGreaterThan(String value) {
            addCriterion("symptoms >", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsGreaterThanOrEqualTo(String value) {
            addCriterion("symptoms >=", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsLessThan(String value) {
            addCriterion("symptoms <", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsLessThanOrEqualTo(String value) {
            addCriterion("symptoms <=", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsLike(String value) {
            addCriterion("symptoms like", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsNotLike(String value) {
            addCriterion("symptoms not like", value, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsIn(List<String> values) {
            addCriterion("symptoms in", values, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsNotIn(List<String> values) {
            addCriterion("symptoms not in", values, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsBetween(String value1, String value2) {
            addCriterion("symptoms between", value1, value2, "symptoms");
            return (Criteria) this;
        }

        public Criteria andSymptomsNotBetween(String value1, String value2) {
            addCriterion("symptoms not between", value1, value2, "symptoms");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultIsNull() {
            addCriterion("diagnose_result is null");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultIsNotNull() {
            addCriterion("diagnose_result is not null");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultEqualTo(String value) {
            addCriterion("diagnose_result =", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultNotEqualTo(String value) {
            addCriterion("diagnose_result <>", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultGreaterThan(String value) {
            addCriterion("diagnose_result >", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultGreaterThanOrEqualTo(String value) {
            addCriterion("diagnose_result >=", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultLessThan(String value) {
            addCriterion("diagnose_result <", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultLessThanOrEqualTo(String value) {
            addCriterion("diagnose_result <=", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultLike(String value) {
            addCriterion("diagnose_result like", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultNotLike(String value) {
            addCriterion("diagnose_result not like", value, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultIn(List<String> values) {
            addCriterion("diagnose_result in", values, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultNotIn(List<String> values) {
            addCriterion("diagnose_result not in", values, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultBetween(String value1, String value2) {
            addCriterion("diagnose_result between", value1, value2, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andDiagnoseResultNotBetween(String value1, String value2) {
            addCriterion("diagnose_result not between", value1, value2, "diagnoseResult");
            return (Criteria) this;
        }

        public Criteria andAdviceIsNull() {
            addCriterion("advice is null");
            return (Criteria) this;
        }

        public Criteria andAdviceIsNotNull() {
            addCriterion("advice is not null");
            return (Criteria) this;
        }

        public Criteria andAdviceEqualTo(String value) {
            addCriterion("advice =", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceNotEqualTo(String value) {
            addCriterion("advice <>", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceGreaterThan(String value) {
            addCriterion("advice >", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceGreaterThanOrEqualTo(String value) {
            addCriterion("advice >=", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceLessThan(String value) {
            addCriterion("advice <", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceLessThanOrEqualTo(String value) {
            addCriterion("advice <=", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceLike(String value) {
            addCriterion("advice like", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceNotLike(String value) {
            addCriterion("advice not like", value, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceIn(List<String> values) {
            addCriterion("advice in", values, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceNotIn(List<String> values) {
            addCriterion("advice not in", values, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceBetween(String value1, String value2) {
            addCriterion("advice between", value1, value2, "advice");
            return (Criteria) this;
        }

        public Criteria andAdviceNotBetween(String value1, String value2) {
            addCriterion("advice not between", value1, value2, "advice");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRecipeIdIsNull() {
            addCriterion("recipe_id is null");
            return (Criteria) this;
        }

        public Criteria andRecipeIdIsNotNull() {
            addCriterion("recipe_id is not null");
            return (Criteria) this;
        }

        public Criteria andRecipeIdEqualTo(Long value) {
            addCriterion("recipe_id =", value, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdNotEqualTo(Long value) {
            addCriterion("recipe_id <>", value, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdGreaterThan(Long value) {
            addCriterion("recipe_id >", value, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdGreaterThanOrEqualTo(Long value) {
            addCriterion("recipe_id >=", value, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdLessThan(Long value) {
            addCriterion("recipe_id <", value, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdLessThanOrEqualTo(Long value) {
            addCriterion("recipe_id <=", value, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdIn(List<Long> values) {
            addCriterion("recipe_id in", values, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdNotIn(List<Long> values) {
            addCriterion("recipe_id not in", values, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdBetween(Long value1, Long value2) {
            addCriterion("recipe_id between", value1, value2, "recipeId");
            return (Criteria) this;
        }

        public Criteria andRecipeIdNotBetween(Long value1, Long value2) {
            addCriterion("recipe_id not between", value1, value2, "recipeId");
            return (Criteria) this;
        }
        
        // 定义患者姓名的搜索条件
        public Criteria andPatientNameLike(String value) {
            addCriterion("patientName like", value, "patientName");
            return (Criteria) this;
        }

        // 定义患者性别的搜索条件
        public Criteria andPatientGenderEqualTo(Long value) {
            addCriterion("patientGender =", value, "patientGender");
            return (Criteria) this;
        }

        // 定义患者地址的搜索条件
        public Criteria andPatientAddressLike(String value) {
            addCriterion("patientAddress like", value, "patientAddress");
            return (Criteria) this;
        }

        // 定义患者挂号科室的搜索条件
        public Criteria andRegisterDeptLike(String value) {
            addCriterion("registerDept like", value, "registerDept");
            return (Criteria) this;
        }

        // 定义主治医师的搜索条件
        public Criteria andDoctorLike(String value) {
            addCriterion("doctor like", value, "doctor");
            return (Criteria) this;
        }

        // 定义开具处方的搜索条件
        public Criteria andRecipeNameLike(String value) {
            addCriterion("recipeName like", value, "recipeName");
            return (Criteria) this;
        }

        // 定义开具处方类型的搜索条件
        public Criteria andRecipeTypeLike(String value) {
            addCriterion("recipeType like", value, "recipeType");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}